% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
%   http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.

% Records to encapsulate Nimbula objects like users, permissions, shapes, etc.

-define(record_fields(Record), {Record, record_info(fields, Record)}).

-record(account, {name, credentials=[], uri}).

-record(authenticate, {user, password}).

-record(customer, {name, description, email, password, multiuser=false, uri}).

-record(group, {customer, name, description, members=[], subgroups=[], uri, proxyuri}).

-record(imagelist, {name, description, default, account}).

-record(info, {name, idpname, uri, licensed, version, fingerprint}).

-record(license, {attributes, code, uri, expires, id}).

-record(machineimage, {name, account, sizes, uri, proxyuri, file, attributes}).

-record(permission, {authorizer, subject, action= <<>>, object}).

-record(shape, {name, cpus, ram, io, uri}).

-record(user, {username, customer, blacklisted, uri, groups, fullname, password, email}).
